Customization
The only thing you need to set up in order for Snak to work is a profile. If you used the Setup Assistant when the program started the first time, even that is taken care of.

Profiles are explained in a previous chapter "Connecting to a Server". However, Snak can be customized to suit your IRC preferences more closely.

Preferences are accessed by using the Edit/Preferences menu item or the cmd-R shortcut.

That will bring up the Preference window which has a list of available preference panels on the left and the currently selected panel on the right. Initially the General preferences panel will be displayed, and you can switch to another panel by clicking in the list on the left.

The Preference window is "dynamic" - you do not need to save changes for them to be active. Just make the change and it will take effect immediately.  

Snak supports Apple's Drag and Drop technology so that you can drag items from the tables in the Preferences window to the trash to delete them, or drag them to another program and insert them as text snippets. 

General Panel
The General panel contains checkboxes to customize the way the program reacts to specific events. 

Automatic options include :
"Reconnect on disconnection" to try to reconnect if you lose the connection to the server.
"Join channel on invite" to join any channel you are invited to.
"Show dialog on invite" to bring up a dialog where you can accept the invitation.
"Rejoin channel when kicked" to go back into a channel you get kicked from. This may result in a full-scale ban instead of just a temporary kick if you are really not welcome.
"Open Query window on private msg" will open a query window so that you can easily respond if someone sends you a private message.
"Close windows after manual disconnect" Normally Snak will remember the windows that are open and keep them open after you disconnect, but if you turn this option on the windows will be closed when you disconnect.
I recommend that the two invite options are not turned on by default as invites can be used to harass you.

Messages Panel
The presentation of the messages in the channels is controlled in the Messages panel.

The channel windows contains a column for the nicknames and a text area for the messages. Between them is a divider line that normally is invisible. You can make Snak display a thin line in this divider to make it easier to see. The divider can be moved to allocate more or less room to the nick column.

In addition to normal channel messages, you will also receive messages from the server as well as information or error messages from Snak. Normally these messages are not marked in the nick column, but you can make Snak use "***" for server messages, "Info" and "Error" for information and error messages respectively. Other options make Snak use "Server" instead of "***" and controls whether the nicks are bracketed by "<" and ">".

Among the server messages you will receive are notices of a changed channel mode. Often this will be regarding a ban that has just been added or removed. The Translate Mode Changes checkbox determine how Snak presents this information. In the raw format a new ban will look something like this "Mode change "+b *!*@202.188.196.46" by Russ". If the Translate Mode Changes option is turned on this will be presented as "Russ has banned *!*@202.188.196.46 from the channel".

The timestamps option will add timestamps to the nick column like this:

[9:54]  pac_mania: was that a 1024x768 reduced to 800x600?
[9:54]  Thorondor: Colonel: You left out the interesting part of how much RAM and how it behaves :-)
[9:54]  Nelluk: hmm where do i set the desktop picture?

This is normally not necessary because Snak remembers when a particular message was received, and will show a tooltip with this information if you place the cursor over the nick and wait a few seconds.

Channel Panel
The settings apply only to new channels, but you can apply then to all channels that Snak knows about by using the "Apply to Existing" button.

You may not care to see a message every time someone changes the topic, or enters or leaves a channel and this can be controlled from this panel by checking and unchecking the boxes.
  
The visible activity can subsequently be modified for each individual channel by using the Channel Settings in the Edit menu.

The font and font size round color settings can be set individually for each channel, console and query window by using the Format menu. 

Highlight Panel
The Highlight panel is used to make Snak react to particular words in a message by beeping, highlighting the message or by speaking it using the Macintosh Text To Speech system.

In this example Snak will mark a message that contains either the words "snak",  "macintosh" or your current nickname using bold and the indicated color. You can also make the message be spoken out  if TTS is present.

Speech Panel
The Speech panel is used to turn speech on and off and assign a particular voice to a given nick. 

The "Never" speech setting does not affect the Highlight speech setting shown above, but stops Snak from speaking out normal messages. Server messages are never spoken, unless they contain a word that is entered the Highlight panel.

In this example the nick stevej is assigned the pompous and quite amusing Pipe Organ voice. It fits him..

Guardian Panel
The Guardian panel is intended for parents or teachers that want to limit the channels or functions that their children or students can access. Initially it can be freely accessed, but once you fill out the password you will have to provide it to access the panel. To remove the password protection and turn off the Guardian features, empty the password field. 

Snak intentionally only asks for the password once per session, and will thereafter remember that you are the supervisor. 

You can selectively turn each feature on and off with the checkboxes next to each feature if they have been activated by providing a supervisor password. You can specify that channels whose name contains certain words are off limits, and you can specify certain words that may not be displayed. If they do, the program will block the message unless the user provides the supervisor password. 

Personal Panel
The Personal panel stores your real name and the default quit message that is displayed when you quit or close a connection. 

The default and default alternative nick are used to fill out fields in a new connection profile.

It also provides a field to enter the text that you want the program to return when some one asks for a ctcp userinfo or home page.

The default and default alternate nicks are used when you create a new connection record.

DCC Panel
DCC is a protocol that allows IRC clients to transfer files, and open a special kind of chat sessions. 

The File Send options can be used to optimize the transfer speed. The larger the block the larger the transfer.

The protocol options "Binary" and "MacBinary" are described in the DCC chapter. MacBinary should be used to transfer Macintosh files (that have resources etc.) to another Mac. Binary should be used when sending to a PC. This option only governs DCC that are started by dragging a file onto a nick in the userlist. 

Normal DCC transfers will bring up a file select dialog where you can set this option on a transfer by transfer basis.

If a previous DCC receive failed because the connection was lost, Snak can often resume the transfer at the point it was stopped. This is the resume option in the group box.

NAT routers and AirPort
If you are on an AirPort network or behind a NAT router, you cannot receive DCC transfers unless the NAT options are set up correctly. When you receive a file via DCC, your machine is actually listening for a connection from the remote machine. This listen happens on a port that you have informed the remote machine about in the DCC accept message. Unfortunately a NAT setup hides your machine and its port behind a public face (the public IP address), and the IP address of your machine is not the one that the remote machine has access to.

Therefore when Snak sends out the DCC accept it needs to inform the remote machine about the public IP address. That is the purpose of the "IP Address" check box.

Snak will attempt to automatically determine this address if the "Auto configure" option is turned on.

The second step in making Snak work from behind a NAT router is to restrict the port range that it uses, so that the NAT router can route a well defined range of ports on to the machine that is running Snak.

The third step is the actual configuration of the NAT router or AirPort network to pass these ports on to the machine that is running Snak. That subject is impossible to cover here because there are so many different systems.

DCC Auto Accept Panel
The DCC Auto Accept panel allows you to make the program automatically accept DCC requests, either only from the nicks in the list or from everybody. 

To add someone that you wish to allow to send you files without you having to OK it, add the nick to the list by pressing the Add.. button. To turn off auto accept, just empty the list.

The options can be set for chat and file receive individually. 

DCC Chat sessions do not pass through the network of IRC servers that normal messages use. Instead these messages are transmitted directly between the two involved computers, which makes for a more secure connection.

Windows Panel
The windows panel is used to configure the layout of Snaks windows and to control the ToolTips.

The preferences for integrated user list and input field will affect the open windows so you can immediately see the effect.

The shared windows preference only takes effect next time you join a channel or open a window. It does not consolidate separate windows, or split shared windows. 

An interface is the name for the text area and information bar that goes with each channel, query, DCC chat etc.

If you want to move an interface into another window or out of it, you need to make the interface active, and use the "Move Interface" menu item under the File menu

ChannelBar Panel
The channel bar is a window that contains a button for each active channel, query, console etc. It can be used to easily monitor the windows for activity and quickly switch between them.

A sample channel bar. The first button (#irchelp) is depressed meaning it is the currently active interface. There are unread messages in #macintosh and #mp3z, indicated by the red bar.

The channel bar can either be a normal window, a floating window or embedded inside the floating input field.

Sounds Panel
In the Sound panel you can turn individual action sounds on and off and control the response to beep requests. 

Selecting one of the checkboxes will play the sound so that you can hear what it sounds like. The private message sound is played whenever someone sends you a private message, and comes in two flavors. The (loud) checkbox is enables whenever the Private message sound is enabled.

Sound Request Panel
The sound request panel control how Snak deals with sound requests that someone sends to the channel. A sound request is sent with the command "/CTCP #channelname SOUND soundname.vaw" and will cause that sound to be played by the other members of the channel, provided they already have the sound file. The command does not send the sound file out, only a request that the other channel members play their local copy of the sound.

If you receive a sound request and you do not have the sound file, it is a convention that it can be requested with a special private nick message. To enable this, select the last checkbox. If the other client supports this, it will send the file via normal DCC. 

It is quite annoying to the senders if you turn this on and then neglect to accept the incoming filetransfer. 

If you want use IRC to download MP3 files, you can use the MP3 request list to automatically keep a sorted list of all the MP3 requests that happen in the channels you are a member of. There are many channels dedicated to the exchange of MP3 files, and you can find then through the channel list. 

The MP3 request list will appear as a tab in the list window, and can be opened with cmd-M or by turning on the Show MP3 Request List. The list can be removed by unchecking the option.

The chapter on the MP3 request list have more information on how to use the request list, and how to use the Delete requests option.

Color panel
The color panel lets you select the colors that Snak uses for the different kinds of messages and types of users. 

Click on the colored fields to bring up a color picker dialog.

The background color for windows can be set according to type for all open windows of the particular type. Each window can subsequently be colorized individually by using the option in the Format menu.

The Color Themes set groups of colors to match some common color setups. The terminal theme uses black windows with green text, and pastel uses light pastel colors with black text.

Clicking panel
In the Clicking panel you can select what happens when you double click in the notify list and the channel user list. 

The options are to either put the nick in the input line, or the program can run a script that can do someting with the selection.

By default the scripts that are defined sends a private message on a double click in the notify list, and opens a query window on a double click in the user list.

In this case the script consists on a single command, but if you define an alias in one of the files in the script folder you can perform complex operations on a double click. 

As explained later in the scripting chapter $E and others are called scripting variables. When the script is run, these variables will be replaced by what they represent.

$E represents the nick of the selected nick in either a user list or a notify list, and $* represent the contents of the input line.

query $E

-- this will open a query window to the selected nick
msg $E $*
    -- this will send the contents of the console window input list as a private message to the selected nick

An alias example:

If you defined the following aliases in a script file and loaded it, you could replace "query $E" with "ChannelClick" and "msg $E $*
" with "ConsoleClick" in the panel above and the behavior would be the same.

Then you could extend the aliases to do precisely what you need.

alias ChannelClick 
query $E

alias ConsoleClick 
msg $E $*

Logging Panel
The Automatic logging feature is controlled from the Logging panel. 

As the name suggest, the "Activate" check box turns Auto logging on and off.

If you prefer to have one (big) log file per channel, select the "Auto Log all Channel sessions to the same file". That will create one log file per channel, and each session will be appended to the file. The logfile will be called <#channel name>.

If you prefer a separate log file to be created each time you enter the channel, select the other option. The logfiles will be called <#channel name month/date> and if there are duplicates Snak will append a '#' and a number in order to make the files unique.

The creator of the Log files are set to BBEdit, a shareware text editor that can handle text files that are larger than 32K. Older versions of SimpleText can not open files larger than 32K, but if the log files are smaller that that they can also be opened with that program.

The Logging panel also provides a way to select where the log files are placed. It allows you to select an Auto Log folder, and inside that folder Snak will create a folder for each Connection record you have defined. The actual log files will be placed inside these folders.